package InterfaceTest;

/**
 * Factory 根据传入参数 返回相应的对象
 *
 * @author ASUS
 * @version OpenJDK 11
 */
public class Factory {
  /** 类型名称： UnCycle */
  static String UnCycle = "UnCycle";

  /** 类型名称：BiCycle */
  static String BiCycle = "BiCycle";

  /** 类型名称： TriCycle */
  static String TriCycle = "TriCycle";

  /**
   * getCycle 获取相应的 Cycle 对象
   *
   * @param type string 需要转型的类型名称
   * @return object 相应的对象
   */
  public Cycle getCycle(String type) {
    if (type == null) {
      return null;
    }
    if (UnCycle.equalsIgnoreCase(type)) {
      return new UnCycle();
    } else if (BiCycle.equalsIgnoreCase(type)) {
      return new BiCycle();
    } else if (TriCycle.equalsIgnoreCase(type)) {
      return new TriCycle();
    }
    return null;
  }
}
